A Personal Data Vault (PDV) is a cloud, or network, based data storage where a user, or an agent acting on behalf of the user, can store data, such as files, documents, photos, medical journals, music, contact lists, presence information, and so forth. The stored data can subsequently be accessed by authorized clients, i.e., clients which have been granted access to the stored data. The clients may be other users of the data storage, a network operator, or a service provider of, e.g., a personalized service, or a data sharing service.
It is known to use policy languages, such as the eXtensible Access Control Markup Language (XACML), to describe how resources, e.g., data or information, are to be treated. Before a resource can be accessed by a client, it is checked if access is allowed by the policy.
In situations where the data storage provider, or an associated PEP, is not fully trusted to enforce access policy, encryption is a common solution. However, encryption has the disadvantage that the owner of the data has to be online in order to provide a client requesting access with a decryption key for the encrypted data. If the owner wants to grant offline access, the key has to be provided to the requesting client by some other means than storing the key in the data storage, since storing keys in the data storage defeats the trust model. Regardless how access to the key is implemented, the owner does not have full control and anyone being in possession of the key can access the stored data. Thus, confidentiality of data is not guaranteed anymore.
A known solution for controlling access to stored data is to employ split keys, e.g., in situations where several clients are available and at least a few of them are trusted. The owner of the stored data may then apply so-called secret sharing of the keys, or possibly of the data, in such a way that only several clients, i.e., more than one client, jointly can retrieve the encrypted data. For example, the owner may split the key among n clients in such a way that at least n/2+1 clients, i.e., a majority of the clients, are required to co-operate in order to obtain the key or the stored data. Several schemes for secret sharing are known in the art.
While splitting of keys provides an improved protection, straightforward usage of this technique implies that a group of clients holding parts of the key can reconstruct the complete key without involving the owner of the data. Also, existing schemes for policy and access control do not provide security if non-malicious mistakes are made. For example, a data storage provider may by mistake grant access to clients not authorized by the owner, e.g., due to misconfiguration of access policies.